package CapaDatos;

import CapaDatos.listas.ListaEmpleados;

public class Restaurant
{
    private String ID;
    private String nombre;
    private String ubicacion;
    private Horario horario;
    private int superficie;
    private int capacidad;
    private ListaEmpleados empleados;

    public Restaurant (String ID, String nombre, String ubicacion, Horario horario, int superficie, int capacidad)
    {
        this.ID         = ID;
        this.nombre     = nombre;
        this.ubicacion  = ubicacion;
        this.horario    = horario;
        this.superficie = superficie;
        this.capacidad  = capacidad;
        this.empleados  = new ListaEmpleados();
    }

    // <editor-fold defaultstate="collapsed" desc="Getters y Setters">
    public String getID() {
        return ID;
    }

    public void setID (String ID) {
        this.ID = ID;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getCapacidad() {
        return capacidad;
    }

    public void setCapacidad (int capacidad) {
        this.capacidad = capacidad;
    }

    public int getSuperficie() {
        return superficie;
    }

    public void setSuperficie (int superficie) {
        this.superficie = superficie;
    }

    public String getUbicacion() {
        return ubicacion;
    }

    public void setUbicacion (String ubicacion) {
        this.ubicacion = ubicacion;
    }

    public Empleado[] getEmpleados() {
        return empleados.array();
    }

    public void setEmpleados (Empleado[] empleados) {
        int i, l = empleados.length;
        for (i = 0; i < l; i++)
            this.empleados.agregar(empleados[i]);
    }

    public Horario getHorario() {
        return horario;
    }

    public void setHorario(Horario horario) {
        this.horario = horario;
    }
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Manejo de Empleados">
    public boolean agregarEmpleado (Empleado empleado) {
        if (empleados.agregar(empleado))
            return true;
        else
            return false;
    }

    public boolean eliminarEmpleado (String cedula) {
        if (empleados.eliminar(cedula))
            return true;
        else
            return false;
    }
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="equals, hashCode y toString">
    @Override
    public boolean equals(Object objeto) {
        Restaurant objetoRestaurant;

        if (!(objeto instanceof Restaurant))
            return false;

        objetoRestaurant = (Restaurant) objeto;

        if (this.ID.equals(objetoRestaurant.getID()))
            return true;

        return false;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (ID != null ? ID.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return this.nombre;
    }
    // </editor-fold>
}
